#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
数据加载测试

测试数据加载相关功能
"""

import sys
import os

# 添加项目根目录到路径
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

import pytest
from loguru import logger
from questionretrieval import load_questions

# 测试数据
TEST_QUESTIONS = [
    "大伙房水库的主管部门是哪个单位？",
    "大伙房水库总库容/防洪库容/兴利库容/死库容？",
    "大伙房水库调度目标和任务是什么？",
    "大伙房水库防洪调度的核心任务是什么？",
    "大伙房水库供水调度的核心任务是什么？"
]

def test_data_loading():
    """
    测试数据加载功能
    """
    logger.info("\n=== 测试数据加载 ===")
    
    # 测试加载默认问题
    try:
        questions = load_questions()
        logger.info(f"✓ 成功加载 {len(questions)} 个问题")
        assert len(questions) > 0, "问题列表不能为空"
        logger.info(f"  前3个问题: {questions[:3]}")
        return True
    except Exception as e:
        logger.error(f"✗ 数据加载失败: {e}")
        logger.info(f"  可以使用测试数据: {len(TEST_QUESTIONS)} 个问题")
        return False

def test_data_loading_with_custom_path():
    """
    测试自定义路径数据加载
    """
    logger.info("\n=== 测试自定义路径数据加载 ===")
    
    try:
        # 测试加载不存在的路径
        questions = load_questions(data_dir="nonexistent_path")
        if len(questions) == 0:
            logger.info("✓ 正确处理了不存在的路径")
            return True
        else:
            logger.info(f"? 意外加载到 {len(questions)} 个问题")
            return True
    except Exception as e:
        logger.error(f"✗ 自定义路径测试失败: {e}")
        return False

if __name__ == "__main__":
    logger.info("\n" + "="*50)
    logger.info("数据加载测试")
    logger.info("="*50)
    
    results = {
        '默认数据加载': test_data_loading(),
        '自定义路径加载': test_data_loading_with_custom_path()
    }
    
    logger.info("\n" + "-"*30)
    logger.info("测试结果")
    logger.info("-"*30)
    
    success_count = 0
    for test_name, success in results.items():
        status = "✓ 通过" if success else "✗ 失败"
        logger.info(f"{test_name:15} : {status}")
        if success:
            success_count += 1
    
    logger.info(f"\n总计: {success_count}/{len(results)} 个测试通过")